//
// Created by jiangpenghui on 2023/4/12.
//

#ifndef CMAKECXX_RELOAD_TEMPLATE_H
#define CMAKECXX_RELOAD_TEMPLATE_H

// 函数模板重载
template<typename T>
const T &min(const T &a, const T &b) {
    return (a < b) ? a : b;
}

// 不同类型比较
template<typename T, typename U>
const T &min(const T &a, const T &b) {
    return (a < b) ? a : b;
}

//  以一个已生成的函数模板地址作为参数
// 定义模板方法
template<typename T>
void f(T *) {}

//模板函数 g 的入参为函数 （T类型入参，返回void)  *(pf) 指针取值代指入参函数
//  h(&f<int>)   h(&f)
template<typename T>
void h(void (*pf)(T *)) {

}

#endif //CMAKECXX_RELOAD_TEMPLATE_H
